<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>12.对象与原型链属性检测实例</title>
</head>

<body>
  <script>
    // 对象的原型对象可以简单理解为父类
    // hasOwnProperty ： 检测对象本身的属性
    // in ： 检测原型对象的属性
    let arr = ["后盾人"];
    console.log(arr);
    console.log(arr.hasOwnProperty("length")); //true 对象本身包含length属性
    console.log(arr.hasOwnProperty("concat")); //false 对象本身不包含 concat 属性
    console.log("concat" in arr); //true 原型对象包含 concat 属性

    let a = {
      name: '后盾人'
    };

    let b = {
      url: 'houdunren.com'
    };

    // 把b 作为a 的原型
    Object.setPrototypeOf(a,b); 
    console.log(a.hasOwnProperty('url')); // false
    console.log('url' in a); //true

    // eg ： 没有配置指定的属性抛异常
    function oss (options){
      if(!options.hasOwnProperty('host')){
        throw new Error('必须配置主机地址');
      }
    }
    oss({user: 'admin'});
  </script>
</body>

</html>